package com.aabbc.cinema.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 ** Netty服务端配置
 ** 使用说明：在配置文件中配置本对象属性，如果enabled为true，则自动启用，否则不启用
 *
 * @author: chenfenghai
 * @version: 1.0
 * @date: 2020-03-23 10:27
 * @blame Team
 */
@Data
@Validated
@ConfigurationProperties("cinema.query")
public class QueryConfig implements Serializable {

    private static final long serialVersionUID = -3887545434902497415L;

    /**
     ** 线程数量
     */
    @NotNull
    @Min(1)
    private int threadCount;

    /**
     * IP文件绝对路径名称
     */
    @NotBlank
    private String ipFileAbsoluteName;

    /**
     ** 输出文件绝对路径名称
     */
    @NotBlank
    private String outputFileAbsoluteName;

    /**
     ** 数据库驱动
     */
    @NotBlank
    private String driverClassName;

    /**
     ** 数据库URL，使用{IP}代替IP
     */
    @NotBlank
    private String url;

    /**
     ** 数据库用户名
     */
    @NotBlank
    private String username;

    /**
     ** 数据库密码
     */
    @NotBlank
    private String password;

    /**
     ** 要查询的SQL
     */
    @NotBlank
    private String sql;

    /**
     ** 格式化输出
     */
    @NotBlank
    private String outputFormat;

    /**
     ** 是否表达式
     */
    @NotBlank
    private String outputScript;
}
